home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
gamesrc
/
connect4
/
c4.h
< prev
next >
Wrap
C/C++ Source or Header
|
1994-09-14
|
3KB
|
75 lines
/****************************************************************************/
/** **/
/** Connect-4 Algorithm **/
/** **/
/** By Keith Pomakis **/
/** (kppomaki@jeeves.uwaterloo.ca) **/
/** **/
/** Fall, 1993 **/
/** **/
/****************************************************************************/
/** **/
/** See the file "c4.c" for documentation. **/
/** **/
/****************************************************************************/
#ifndef C4_DEFINED
#define C4_DEFINED
#define EMPTY 2
#ifndef Boolean
#define Boolean unsigned char
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
typedef struct {
char **board; /* The board configuration of the game state. */
/* board[x][y] specifies the position of the */
/* xth column and the yth row of the board, */
/* where column and row numbering starts at 0. */
/* (The 0th row is the bottom row.) */
/* A value of 0 specifies that the position is */
/* occupied by a piece owned by player 0, a */
/* value of 1 specifies that the position is */
/* occupied by a piece owned by player 1, and */
/* a value of EMPTY specifies that the */
/* position is unoccupied. */
long *(score_array[2]); /* An array specifying statistics on both */
/* players. score_array[0] specifies the */
/* statistics for player 0, while */
/* score_array[1] specifies the statistics for */
/* player 1. These statistics have little */
/* meaning outside the realm of the local */
/* functions of the "c4.c" file. */
long num_of_pieces; /* The number of pieces currently occupying */
/* board spaces. */
} Game_state;
/* See the file "c4.c" for documentation on the following functions. */
extern void poll(void (*poll_func)(void), long level);
extern void new_game(long width, long height, long num);
extern Boolean make_move(long player, long column);
extern long automatic_move(long player, long level);
extern Game_state get_game_state(void);
extern long score_of_player(long player);
extern Boolean is_winner(long player);
extern Boolean is_tie(void);
extern void win_coords(long player, long *x1, long *y1, long *x2, long *y2);
extern void end_game(void);
#endif /* C4_DEFINED */